#include "bsp.h"

#if HardwareType == Common_Hardware_Type
void Key_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStruct;

    KEY_PORT_CLK_ENABLE();

    GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Pin = KEY_PIN;
    HAL_GPIO_Init(KEY_PORT, &GPIO_InitStruct);
    
    HAL_NVIC_SetPriority(KEY_EXTI_IRQn, 1, 1);
    HAL_NVIC_EnableIRQ(KEY_EXTI_IRQn);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if (GPIO_Pin == KEY_PIN)
    {
        if(HAL_GPIO_ReadPin(KEY_PORT, KEY_PIN) == RESET)
        {
       		LED_Turn(LED_G); 		
        }
    }
}

#elif HardwareType == Engineer_Hardware_Type
void Key_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStruct;

    KEY_PORT_CLK_ENABLE();

    GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Pin = KEY_PIN;
    HAL_GPIO_Init(KEY_PORT, &GPIO_InitStruct);
    
    HAL_NVIC_SetPriority(KEY_EXTI_IRQn, 1, 1);
    HAL_NVIC_EnableIRQ(KEY_EXTI_IRQn);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if (GPIO_Pin == KEY_PIN)
    {
        if(HAL_GPIO_ReadPin(KEY_PORT, KEY_PIN) == RESET)
        {
			LED_Turn();			
        }
    }
}


#endif


